package niuke;

/**
 * description:
 * author:张腾
 * date:2021-06-27
 */

/**
 * 给出一个升序排序的链表，删除链表中的所有重复出现的元素，只保留原链表中只出现一次的元素。
 * 例如：
 * 给出的链表为1→2→3→3→4→4→5, 返回1→2→5.
 * 给出的链表为1→1→1→2→3, 返回2→3.
 */
public class NC24 {
    public ListNode deleteDuplicates (ListNode head) {
        // write code here
        ListNode dum = new ListNode();
        dum.next = head;
        ListNode pre = dum;
        while (head!=null && head.next!=null){
            if (head.val==head.next.val){
                int val = head.val;
                while (head.val==val && head!=null) head = head.next;
                pre.next = head;
            }else{
                pre = head;
                head = head.next;
            }
        }
        return dum.next;
    }
}
